| Nombre | Ciudad | Edad | |
|---|---|---|---|
| 0 | Ana | Rosario | 14 |
| 1 | Juan | Rosario | 22 |
| 2 | Pedro | Funes | 18 |
| 3 | Maria | Roldán | 35 |
| 4 | Luis | Funes | 16 |
| 5 | Elena | Funes | 20 |
| 6 | Florencia | Roldán | 38 |
| 7 | Agustín | Rosario | 25 |
UNIDAD 5 - Parte 2
La dicotomización de una variable consiste en dividir los valores observados en dos grupos que representan dos categorías exhaustivas y mutuamente excluyentes, a menudo en base a un punto de corte.
Esta técnica se utiliza a menudo cuando se desea convertir una variable continua en una variable categórica binaria para su análisis.
Para ejemplificar en forma simple, supongamos que tenemos un dataset de juguete con información sobre el nombre, la ciudad en la que vive y la edad de una serie de personas:
| Nombre | Ciudad | Edad | |
|---|---|---|---|
| 0 | Ana | Rosario | 14 |
| 1 | Juan | Rosario | 22 |
| 2 | Pedro | Funes | 18 |
| 3 | Maria | Roldán | 35 |
| 4 | Luis | Funes | 16 |
| 5 | Elena | Funes | 20 |
| 6 | Florencia | Roldán | 38 |
| 7 | Agustín | Rosario | 25 |
Podemos dicotomizar la variable Edad según si la persona alcanzó o no los 18 años de edad:
En este caso, en lugar de dividir los datos de una variable en dos grupos, la división se realiza en grupos múltiples exhaustivos y mutuamente excluyentes llamados bins o buckets.
Por ejemplo, sobre nuestros datos de juguete podríamos definir la variable Grupo_etario para clasificar a las personas según su Edad en: Menores de 18, 18-30 o Mayores de 30.
Para ello, una opción rápida es utilizar la función cut() de Pandas
La mayoría de los algoritmos de aprendizaje automático no pueden manejar variables categóricas a menos que las convirtamos en valores numéricos.
El rendimiento de muchos algoritmos varía en función de cómo se codifican las variables categóricas, por lo que debe analizarse muy bien el método de codificación previo al entrenamiento del modelo.
En este método, asignamos cada categoría de la variable cualitativa a un vector que contiene 1 y 0, con los que se denota la presencia o ausencia de la característica, respectivamente. El número de vectores generados dependerá del número de categorías o niveles en la variable de interés.
Para aplicarlo, contamos con la función get_dummies() de Pandas, que ya hemos mencionado en otra Unidad.
Si usamos este método de codificación sobre Ciudad, obtenemos lo siguiente:
dtype = 'int' nos devuelve 0 y 1 en lugar de booleanos.
Para la Unidad que viene, tener en cuenta que si utilizamos este método de codificación para introducir la información de una variable categórica a un modelo, debemos considerar (N-1) variables dummy como predictoras para representar una variable categórica, ya que de lo contrario caemos en la Dummy Variable Trap.
En esta situación, las variables predictoras se predicen perfectamente unas y otras creando multicolinearidad.
Se trata de una técnica de preprocesamiento utilizada para convertir datos categóricos de variables ordinales en valores numéricos que preservan su orden inherente. De esta manera, presenta dos beneficios:
Codifica datos categóricos en datos numéricos que los algoritmos pueden entender.
Retiene la información ordinal entre categorías, que se perdería con otros métodos como one-hot encoding.
La codificación ordinal funciona asignando cada valor de categoría único a un número entero diferente. Normalmente, los números enteros comienzan en 0 y aumentan en 1 por cada categoría adicional.
Por ejemplo, una variable de “tamaño” con las categorías [“pequeño”, “mediano”, “grande”] se asignaría a [0, 1, 2]. De esta forma, se mantienen las relaciones ordinales: “pequeño” < “mediano” < “grande”.
Algunas consideraciones importantes:
La codificación ordinal supone un orden secuencial significativo entre categorías. No debe usarse para categorías nominales.
Los números enteros utilizados deben espaciar uniformemente las categorías. Si se dejan espacios en blanco, algunos modelos pueden inferir incorrectamente cercanía entre categorías.
La codificación ordinal funciona bien para variables cualitativas con una pequeña cantidad de niveles diferentes, pero puede resultar engorrosa si existen muchas categorías.